package com.hsqyz.common.utils.file;

import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import cn.hutool.http.Method;

/**
 * 获取 URL 资源的 ContentType。
 *
 * @author lcz
 */
public class ContentTypeUtils {

    /**
     * 获取 URL 资源的 ContentType。
     *
     * @param url 资源的 URL
     * @return ContentType 字符串，如果获取失败返回 null
     */
    public static String getContentTypeFromUrl(String url) {
        if (url == null || url.isEmpty()) {
            throw new IllegalArgumentException("URL 不能为空");
        }

        try {
            // 发送 HEAD 请求以获取响应头信息
            HttpResponse response = HttpUtil.createRequest(Method.GET, url).execute();

            // 检查响应状态码是否为 200
            if (response.getStatus() == 200) {
                // 从响应头中获取 ContentType
                return response.header("Content-Type");
            } else {
                System.err.println("无法获取资源，状态码: " + response.getStatus());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return null;
    }

    public static void main(String[] args) {
        // 示例 URL
        String imageUrl = "https://inwuoo-chats.oss-cn-hangzhou.aliyuncs.com/chat_agent/2024/10/08/670504fb263641843827310d.jpg"; // 替换为你实际的图片 URL

        // 获取 ContentType
        String contentType = ContentTypeUtils.getContentTypeFromUrl(imageUrl);

        if (contentType != null) {
            System.out.println("Content-Type: " + contentType);
        } else {
            System.out.println("无法获取 Content-Type");
        }
    }

}